class Solution:
    def spiralOrder(self, matrix):
        output=[]
        border=[0,len(matrix),0,len(matrix[0])]
        direction=4
        count=0
        x=y=0
        square=len(matrix)*len(matrix[0])
        print(square)
        while count!=square:
            print(matrix[x][y])
            output.append(matrix[x][y])
            count+=1
            if direction==4:
                if y<border[3]-1:
                    y+=1
                else:
                    x+=1
                    border[3]-=1
                    direction=2
            elif direction==2:
                if x<border[1]-1:
                    x+=1
                else:
                    y-=1
                    border[1]-=1
                    direction=3
            elif direction==3:
                if y>border[2]:
                    y-=1
                else:
                    x-=1
                    border[2]+=1
                    direction=1
            elif direction==1:
                if x>border[0]+1:
                    x-=1
                else:
                    y+=1
                    border[0]+=1
                    direction=4
        return output

s=Solution()
s.spiralOrder([
  [1, 2, 3, 4],
  [5, 6, 7, 8],
  [9,10,11,12]
])

'''
执行用时：
44 ms
, 在所有 Python3 提交中击败了
37.05%
的用户
内存消耗：
13.4 MB
, 在所有 Python3 提交中击败了
34.45%
的用户
'''